Satellite-based media distribution provides high bandwidth and low transmission cost to a wide geographic area. Additional downlink sites can be added for a low marginal cost, at no increased uplink expense, providing a highly scalable media delivery system. For years, such systems have allowed television and radio networks to utilize centralized studios for origination and production of media with regional network affiliates or downlink sites with local terrestrial transmitters to reach large populations.
However, such downlink sites are typically either simple downlink and retransmission stations with little to no ability to add local or regional programming, or are complex (and significantly more expensive) local affiliates manned with live operators who perform manual switching of network feeds and local programming. In a hybrid model, automation systems can provide switching and playback of locally stored content, such as local advertising, but may still require a local engineer for programming and maintenance. Additionally, such local content typically needs to be added locally, and may require local production studios or editing environments, at increased cost.
In one aspect, the present disclosure is directed to a method for generating a hierarchical media automation schedule. The method includes associating, via a server device, each of a plurality of devices with a broadcast region, each broadcast region corresponding to a node in a hierarchical tree for broadcasting to the plurality of regions. The method also includes generating, via the server device, a first schedule for a parent node in the hierarchical tree. The method also includes generating, via the server device, a second schedule for a child node in the hierarchical tree; and aggregating the first schedule and second schedule to generate an aggregated set of automation instructions.
In some embodiments, the method includes transmitting, by the server device, the first schedule and second schedule to a first device of the plurality of devices; and aggregating, by the first device of the plurality of devices, the first schedule and second schedule. In a further embodiment, the method includes determining, by the first device, that it is in a broadcast region corresponding to the child node in the hierarchical tree; and aggregating the first schedule and second schedule responsive to the determination. In one embodiment, the method includes aggregating, by the server device, the first schedule and second schedules; and transmitting, by the server device, the aggregated set of automation instructions to a first device of the plurality of devices. In some embodiments, the method includes transmitting at least one item of content to one or more of the plurality of devices for playback in accordance with the aggregated set of automation instructions.
In another aspect, the present disclosure is directed to a method for propagating edits in a hierarchical media automation system. The method includes receiving, by a device, a request to edit a schedule in a media automation system, the request identifying a first node in a hierarchical tree corresponding to a broadcast region. The method also includes retrieving, by the device, a media automation schedule corresponding to the identified first node. The method further includes editing, by the device, the retrieved media automation schedule according to the received request. The method also includes identifying, by the device, a second node having a child relationship to the identified first node. The method further includes retrieving, by the device, a second media automation schedule corresponding to the identified second node; and editing, by the device, the second media automation schedule according to the received request.
In one implementation, the method includes repeating the steps of identifying a node having a relationship to a previously identified node; retrieving a media automation schedule for the newly identified node; and editing the retrieved media automation schedule for the newly identified node, for each node having the child relationship to the first node, the second node, or a third node identified during an iteration of the method. In some implementations of the method, the request identifies an entry to add to a media automation schedule. In other implementations of the method, the request identifies an entry to delete from a media automation schedule. In still other implementations of the method, the edit request identifies a first entry to replace in a media automation schedule with a second entry. In a further implementation, the method includes determining if the second media automation schedule includes the first entry. In a still further implementation, the method includes replacing the first entry in the second media automation schedule with the second entry, responsive to determining that the second media automation schedule includes the first entry. In another further implementation, the method includes determining that the second media automation schedule does not include the first entry; and not replacing a third entry in the second media automation schedule with the second entry.
In some implementations, the method includes receiving, by the device, a request to add a node to the hierarchical tree corresponding to a second broadcast region, the request identifying a parent node; and editing, by the device, the hierarchical tree to add a new node as a child of the identified parent node. In a further implementation, the method includes generating, by the device, a third media automation schedule for the new node corresponding to the media automation schedule of the identified parent node.
In still another aspect, the present disclosure is directed to a system for generating a hierarchical media automation schedule. The system includes a server device comprising a processor and a storage device, the processor executing a media automation schedule manager. The media automation schedule manager is configured to associate each of a plurality of devices with a broadcast region, each broadcast region corresponding to a node in a hierarchical tree retained in the storage device for broadcasting to the plurality of regions. The schedule manager is further configured to generate a first schedule for a parent node in the hierarchical tree, and generate a second schedule for a child node in the hierarchical tree, the first schedule and second schedule aggregated to generate an aggregated set of automation instructions.
In some implementations, the media automation schedule manager is further configured to transmit the first schedule and second schedule to a first device of the plurality of devices, the first device comprising a second processor configured to aggregate the first schedule and second schedule. In a further implementation, the second processor is further configured to determine that the first device is in a broadcast region corresponding to the child node in the hierarchical tree, and aggregate the first schedule and second schedule responsive to the determination.
In another implementation, the media automation schedule manager is further configured to transmit the aggregated set of automation instructions to a first device of the plurality of devices. In still another implementation, the media automation schedule manager is further configured to transmit at least one item of content stored in the storage device to one or more of the plurality of devices for playback in accordance with the aggregated set of automation instructions.
In another aspect, the present disclosure is directed to a system for propagating edits in a hierarchical media automation system. The system includes a device comprising a processor and a storage device, the processor executing a media automation schedule manager. The media automation schedule manager is configured to receive a request to edit a schedule in a media automation system, the request identifying a first node in a hierarchical tree retained in the storage device corresponding to a broadcast region; and retrieve, from the storage device, a media automation schedule corresponding to the identified first node. The media automation schedule manager is also configured to edit the retrieved media automation schedule according to the received request; identify a second node having a child relationship to the identified first node; retrieve, from the storage device, a second media automation schedule corresponding to the identified second node; and edit the second media automation schedule according to the received request.
In some implementations, the media automation schedule manager is further configured to repeat the steps of identifying a node having a relationship to a previously identified node; retrieving a media automation schedule for the newly identified node; and editing the retrieved media automation schedule for the newly identified node, for each node having a child relationship to the first node, the second node, or a third node identified during an iteration. In some embodiments of the system, the request identifies an entry to add to a media automation schedule. In other embodiments of the system, the request identifies an entry to delete from a media automation schedule. In still other embodiments of the system, the request identifies a first entry to replace in a media automation schedule with a second entry.
In one embodiment, the media automation schedule manager is further configured to determine if the second media automation schedule includes the first entry. In a further embodiment, the media automation schedule manager is further configured to replace the first entry in the second media automation schedule with the second entry, responsive to determining that the second media automation schedule includes the first entry. In another further embodiment, the media automation schedule manager is further configured to determine that the second media automation schedule does not include the first entry; and not replace a third entry in the second media automation schedule with the second entry. In another embodiment, the media automation schedule manager is further configured to receive a request to add a node to the hierarchical tree corresponding to a second broadcast region, the request identifying a parent node; and edit the hierarchical tree to add a new node as a child of the identified parent node. In a further embodiment, the media automation schedule manager is further configured to generate a third media automation schedule for the new node corresponding to the media automation schedule of the identified parent node.
In still another aspect, the present disclosure is directed to a media play out system. The media play out system includes a first device, including a first processor and a first storage device, the first processor configured to transmit a hierarchical broadcast media automation schedule from the storage device to a second device via a network. The media play out system also includes the second device, including a second processor, a media router, and at least one media output interface connected to the media router, the second processor configured for receiving the hierarchical automation schedule from the first device, and identifying a node within the hierarchy corresponding to the second device. The second processor is also configured for aggregating media automation instructions of the identified node and each parent node of the identified node from the hierarchical automation schedule, and controlling the media router in accordance with the aggregated automation instructions.
In some embodiments, the second device further includes a second storage device, and the second processor is further configured for retrieving at least one item of content identified in the aggregated automation instructions, and playing the retrieved at least one item of content via the media output interface, in accordance with the aggregated automation instructions. In a further embodiment, the second processor is further configured for storing the retrieved at least one item of content in the second storage device; and playing the retrieved at least one item of content from the second storage device. In a still further embodiment, the second processor is further configured for determining whether a first item of content is available for playback at a first time designated for playback of the first item of content in the aggregated automation instructions. In a yet still further embodiment, the second processor is further configured for identifying a child node of the hierarchical automation schedule including the instruction designating playback of the first item of content at the first time, responsive to a determination that the first item of content is not available for playback; iteratively searching for a parent node of the child node including an instruction designating playback of a second item of content at the first time; and playing the second item of content in the second storage device via the media output interface, responsive to locating the parent node.
In some embodiments, the second processor is further configured for controlling the media router to switch among a plurality of media sources according to the aggregated automation instructions. In other embodiments, the second processor is further configured for identifying a node within the hierarchy responsive to the identified node corresponding to a broadcast region including the second device. In a further embodiment, the second processor is further configured for identifying a lowest tier node within the hierarchy corresponding to the broadcast region including the second device.
In one embodiment of the media play out system, aggregating automation instructions of the identified node and each parent node includes replacing an automation instruction of a first node with a corresponding automation instruction from a second node, the second node a child of the first node. In another embodiment, the second processor is further configured for transmitting a log of executed automation instructions to the first device.
In still another aspect, the present disclosure is directed to a method for cloud-based media play out. The method includes transmitting, by a first device to a second device via a network, a hierarchical media automation schedule stored in a storage device of the first device. The method also includes receiving, by the second device from the first device, the hierarchical media automation schedule. The method further includes identifying, by the second device, a node within the hierarchy corresponding to the second device. The method also includes aggregating, by the second device, media automation instructions of the identified node and each parent node of the identified node from the hierarchical media automation schedule; and controlling, by the second device, a media router of the second device in accordance with the aggregated media automation instructions.
In some embodiments, the method includes retrieving, by the second device, at least one item of content identified in the aggregated media automation instructions; and playing, by the second device, the retrieved at least one item of content via the media output interface, in accordance with the aggregated media automation instructions. In a further embodiment, the method includes storing the retrieved at least one item of content in the second storage device; and playing the retrieved at least one item of content from the second storage device. In a still further embodiment, the method includes determining, by the second device, whether a first item of content is available for playback at a first time designated for playback of the first item of content in the aggregated media automation instructions. In a yet still further embodiment, the method includes identifying, by the second device, a child node of the hierarchical media automation schedule including the instruction designating playback of the first item of content at the first time, responsive to a determination that the first item of content is not available for playback; iteratively searching, by the second device, for a parent node of the child node including an instruction designating playback of a second item of content at the first time; and playing the second item of content via the media output interface, responsive to locating the parent node.
In some embodiments, the method includes controlling, by the second device, the media router to switch among a plurality of media sources according to the aggregated media automation instructions. In other embodiments, the method includes identifying a node within the hierarchy responsive to the identified node corresponding to a broadcast region including the second device. In a further embodiment, the method includes identifying a lowest tier node within the hierarchy corresponding to the broadcast region including the second device. In another embodiment, the method includes replacing a media automation instruction of a first node with a corresponding media automation instruction from a second node, the second node a child of the first node. In a further embodiment, the method includes transmitting, by the second device, a log of executed media automation instructions to the first device.
In still another aspect, the present disclosure is directed to a media play out system, including a single card including a processor; at least one network interface; a storage device storing one or more items of content received via the at least one network interface; at least one content decoder connected to the storage device; at least one media input interface; at least one media output interface; and a mixer connected to the at least one content decoder, the at least one media input interface, and the at least one media output interface. The processor is configured to retrieve a media automation schedule from a second device via the network interface, and control the mixer to play out media in accordance with the retrieved media automation schedule.
In one embodiment, the mixer includes a video mixer; and the single card further includes an audio/video multiplexer connected between the at least one media output interface and the video mixer. In a further embodiment, the single card further includes an audio mixer connected to the audio/video multiplexer, the at least one media input interface, and the at least one content decoder. In some embodiments, the single card further comprises a bypass relay connected to the at least one media input interface and the at least one media output interface. In other embodiments, the media play out system further includes a device comprising a power supply and a card interface connected to the single card, the power supply providing power via the card interface to the single card. In a further embodiment, the device further comprises a second card interface; and the media play out system further includes a second single card connected to the second card interface.
In some embodiments, the single card is configured to play out media for a first broadcast region of a plurality of broadcast regions. In a further embodiment, the automation schedule is a hierarchical media automation schedule for the plurality of broadcast regions, and the processor is further configured for identifying a node within the hierarchy corresponding to the first broadcast region. In a still further embodiment, the processor is further configured for aggregating media automation instructions of the identified node and each parent node of the identified node from the hierarchical media automation schedule. In a yet still further embodiment, the processor is further configured for controlling the mixer in accordance with the aggregated media automation instructions. In an even still further embodiment, the processor is further configured for playing at least one of the one or more items of content stored in the storage device, in accordance with the aggregated media automation instructions. In another even still further embodiment, the processor is further configured for determining whether a first item of content identified in the aggregated media automation instructions for play back at a first time is available. In a still further embodiment, the processor is further configured for identifying a node of the hierarchical media automation schedule including the instruction designating playback of the first item of content at the first time, responsive to determining that the first item of content is not available; iteratively searching for a parent node of the child node including an instruction designating playback of a second item of content at the first time; and controlling the mixer to play the second item of content in the storage device via the media output interface.
In another embodiment, the single card further includes a monitoring encoder connected to the media output interface; and the processor is further configured to transmit the monitoring encoder output via the network interface.
In still yet another aspect, the present disclosure is directed to a method for broadcasting media to a region. The method includes retrieving a media automation schedule, by a media play out system comprising a single card comprising a processor, at least one network interface, a storage device storing one or more items of content received via the at least one network interface, at least one content decoder connected to the storage device, at least one media input interface, at least one media output interface, and a mixer connected to the at least one content decoder, the at least one media input interface, and the at least one media output interface; and controlling the mixer, by the processor, to play out media in accordance with the retrieved automation schedule. The media automation schedule is retrieved from a second device via the network interface.
In some embodiments, the media automation schedule is a hierarchical media automation schedule for a plurality of broadcast regions. In such embodiments, the method further includes identifying a node within the hierarchy corresponding to a first broadcast region including the media play out system. In a further embodiment, the method includes aggregating, by the processor, media automation instructions of the identified node and each parent node of the identified node from the hierarchical media automation schedule. In a still further embodiment, the method includes controlling, by the processor, the mixer in accordance with the aggregated media automation instructions. In a yet still further embodiment, the method includes playing, by the processor, at least one of the one or more items of content stored in the storage device, in accordance with the aggregated media automation instructions. In a still yet further embodiment, the method includes determining, by the processor, whether a first item of content identified in the aggregated media automation instructions for play back at a first time is available; and identifying, by the processor, a node of the hierarchical media automation schedule including the instruction designating playback of the first item of content at the first time, responsive to determining that the first item of content is not available. The method also includes iteratively searching, by the processor, for a parent node of the child node including an instruction designating playback of a second item of content at the first time; and controlling, by the processor, the mixer to play the second item of content in the storage device via the media output interface.